#pragma once

#include "e2d/core/pch.h"
#include "e2d/core/Entity.h"

namespace e2d
{

	struct  Signal
	{
		bool newInst;

		bool loadInst;

		std::string loadPath;

		bool saveInst;

		std::string savePath;

		bool saveNewPath;

		bool newEntity{0};

		bool m_ClearAllSelected;

		bool selectEntityFlag;

		bool m_CtrlSelect{ false };

		e2d::Entity* selectedEntity{0};

		bool hireEntityFlag{ 0 };

		bool m_RefreshPrefeb{ false };

		bool entityAddComponent;

		std::shared_ptr<e2d::Scene> m_NewScene;

		bool m_ChangedSceneFlag;

		bool m_SceneAddFiles{ false };

		bool m_LoadPrefebs{ false };

		std::vector<fxcc::File*> m_SelectedFiles;

		bool m_EditMaterialFlag{ false };

		std::string m_EditMaterialPath;

		bool m_EditActorFlag{ false };

		std::string m_EditActorPath;
	
		bool m_EditEffectsFlag{ false };

		std::string m_EditEffectsPath;

	};
	struct  State
	{
		static Signal& Inst()
		{
			static Signal res;
			return res;
		}
	};
}